#include "asm.h"
#include "regdef.h"
#include "inst_test.h"

LEAF(n23_sltui_test)
    
    addi.w s0, s0 ,1
    li  s2, 0x0
###test inst
    TEST_SLTUI(0xc254e3d8, 0x00000469, 0x0)
    TEST_SLTUI(0x7a56334c, 0x000002f5, 0x0)
    TEST_SLTUI(0xabcd2c00, 0x000007c7, 0x0)
    TEST_SLTUI(0x25c835b7, 0x00000dba, 0x1)
    TEST_SLTUI(0x10ea3bf2, 0x00000ff4, 0x1)
    TEST_SLTUI(0x494c2712, 0x0000007a, 0x0)
    TEST_SLTUI(0x977b0d34, 0x00000280, 0x0)
    TEST_SLTUI(0x868f7bf9, 0x000005e7, 0x0)
    TEST_SLTUI(0x85a78bab, 0x00000898, 0x1)
    TEST_SLTUI(0x67b13d20, 0x000005a5, 0x0)
    TEST_SLTUI(0xd98263b6, 0x00000642, 0x0)
    TEST_SLTUI(0x33899815, 0x00000202, 0x0)
    TEST_SLTUI(0x3a880fb8, 0x000008cc, 0x1)
    TEST_SLTUI(0x197b7590, 0x00000754, 0x0)
    TEST_SLTUI(0x65a1b8c4, 0x00000c77, 0x1)
    TEST_SLTUI(0x06fc1f2e, 0x000001fb, 0x0)
    TEST_SLTUI(0xba9367b9, 0x0000036c, 0x0)
    TEST_SLTUI(0xa0cbf154, 0x00000d0c, 0x1)
    TEST_SLTUI(0x4abfa210, 0x0000025c, 0x0)
    TEST_SLTUI(0xfd04e6b9, 0x00000d24, 0x1)
    TEST_SLTUI(0x4a84dd80, 0x000006a8, 0x0)
    TEST_SLTUI(0x5ea373b0, 0x00000ca6, 0x1)
    TEST_SLTUI(0xb1c61e84, 0x000002be, 0x0)
    TEST_SLTUI(0x8d8c56c6, 0x000009e0, 0x1)
    TEST_SLTUI(0xd4972598, 0x00000950, 0x1)
    TEST_SLTUI(0xbd26734a, 0x00000ac0, 0x1)
    TEST_SLTUI(0x343280c0, 0x00000c96, 0x1)
    TEST_SLTUI(0x1ae3ad00, 0x00000df9, 0x1)
    TEST_SLTUI(0xd589aae0, 0x00000d30, 0x1)
    TEST_SLTUI(0x15b8c524, 0x00000758, 0x0)
    TEST_SLTUI(0x29861ff7, 0x000002cc, 0x0)
    TEST_SLTUI(0x14603517, 0x00000892, 0x1)
    TEST_SLTUI(0x2afeb200, 0x00000cf8, 0x1)
    TEST_SLTUI(0x5ee43660, 0x000000f2, 0x0)
    TEST_SLTUI(0x09bc8a70, 0x00000d3d, 0x1)
    TEST_SLTUI(0xecf24c80, 0x00000bf5, 0x1)
    TEST_SLTUI(0x60987cbb, 0x00000efc, 0x1)
    TEST_SLTUI(0xe3b91bfc, 0x00000768, 0x0)
    TEST_SLTUI(0x7defe89a, 0x0000039c, 0x0)
    TEST_SLTUI(0x41504f88, 0x0000036a, 0x0)
    TEST_SLTUI(0x82eb6ff4, 0x00000c20, 0x1)
    TEST_SLTUI(0x5e6ed880, 0x00000ce9, 0x1)
    TEST_SLTUI(0xa0289d40, 0x000007cb, 0x0)
    TEST_SLTUI(0x38321117, 0x00000d76, 0x1)
    TEST_SLTUI(0x12a88941, 0x00000a3c, 0x1)
    TEST_SLTUI(0xed5d7100, 0x00000eb0, 0x1)
    TEST_SLTUI(0xd38b9f88, 0x0000008c, 0x0)
    TEST_SLTUI(0xea5f0780, 0x00000fdf, 0x1)
    TEST_SLTUI(0xea28e0c8, 0x00000fa2, 0x1)
    TEST_SLTUI(0x0ec1dee5, 0x000002d2, 0x0)
    TEST_SLTUI(0x26b8c998, 0x000003de, 0x0)
    TEST_SLTUI(0xbd075074, 0x0000049e, 0x0)
    TEST_SLTUI(0x9d53bafc, 0x00000c24, 0x1)
    TEST_SLTUI(0x7d85cdb0, 0x00000d7c, 0x1)
    TEST_SLTUI(0x5d267400, 0x000006ac, 0x0)
    TEST_SLTUI(0xf3b63bc0, 0x00000d1e, 0x1)
    TEST_SLTUI(0x40ed91e0, 0x0000099c, 0x1)
    TEST_SLTUI(0x5396f740, 0x00000bfd, 0x1)
    TEST_SLTUI(0xa86c7df0, 0x00000f01, 0x1)
    TEST_SLTUI(0x00412d74, 0x00000178, 0x0)
    TEST_SLTUI(0x86a5e264, 0x000002da, 0x0)
    TEST_SLTUI(0xca63a907, 0x00000185, 0x0)
    TEST_SLTUI(0xfa97665a, 0x000008d7, 0x1)
    TEST_SLTUI(0xcf4d21aa, 0x00000edc, 0x1)
    TEST_SLTUI(0x69c45edc, 0x00000530, 0x0)
    TEST_SLTUI(0xcd5512cb, 0x00000395, 0x0)
    TEST_SLTUI(0x0899ac00, 0x00000626, 0x0)
    TEST_SLTUI(0x6d468800, 0x00000410, 0x0)
    TEST_SLTUI(0xec8514c0, 0x00000f4e, 0x1)
    TEST_SLTUI(0x12a7789a, 0x00000763, 0x0)
    TEST_SLTUI(0xe5233112, 0x00000af6, 0x1)
    TEST_SLTUI(0xdc810bbb, 0x00000b90, 0x1)
    TEST_SLTUI(0xf14e9ca8, 0x00000618, 0x0)
    TEST_SLTUI(0xa9673020, 0x0000036e, 0x0)
    TEST_SLTUI(0x94bdcb7b, 0x00000724, 0x0)
    TEST_SLTUI(0xc074e8b0, 0x000005f4, 0x0)
    TEST_SLTUI(0xe3da6090, 0x000007c8, 0x0)
    TEST_SLTUI(0xae7c5a80, 0x00000114, 0x0)
    TEST_SLTUI(0x672981fd, 0x00000129, 0x0)
    TEST_SLTUI(0x122f94e0, 0x00000180, 0x0)
    TEST_SLTUI(0xafab69cc, 0x00000a4d, 0x1)
    TEST_SLTUI(0xef8a9a2c, 0x00000d94, 0x1)
    TEST_SLTUI(0x749dc4c4, 0x00000eb8, 0x1)
    TEST_SLTUI(0xe256fe48, 0x000004fd, 0x0)
    TEST_SLTUI(0x970c6730, 0x0000014a, 0x0)
    TEST_SLTUI(0xb75cc575, 0x0000080e, 0x1)
    TEST_SLTUI(0x9cfeb59a, 0x0000074d, 0x0)
    TEST_SLTUI(0xc0db6a60, 0x0000000a, 0x0)
    TEST_SLTUI(0xaa7391d8, 0x000005a3, 0x0)
    TEST_SLTUI(0x2875f9fa, 0x000003c8, 0x0)
    TEST_SLTUI(0x83d67990, 0x00000a62, 0x1)
    TEST_SLTUI(0x3bd67330, 0x0000059e, 0x0)
    TEST_SLTUI(0xcbe86d55, 0x000006bb, 0x0)
    TEST_SLTUI(0x277a62c6, 0x00000c96, 0x1)
    TEST_SLTUI(0xef53abd8, 0x00000a7a, 0x1)
    TEST_SLTUI(0x6505daa5, 0x00000c60, 0x1)
    TEST_SLTUI(0xbd426d20, 0x00000326, 0x0)
    TEST_SLTUI(0xd5c110da, 0x00000f8c, 0x1)
    TEST_SLTUI(0xd5e48c59, 0x0000040f, 0x0)
    TEST_SLTUI(0xcce87935, 0x000005ea, 0x0)
    TEST_SLTUI(0xd96af938, 0x00000e84, 0x1)
    TEST_SLTUI(0x470c7090, 0x00000f94, 0x1)
    TEST_SLTUI(0x419ba854, 0x000002cd, 0x0)
    TEST_SLTUI(0x91718eb8, 0x00000a36, 0x1)
    TEST_SLTUI(0x77d86579, 0x00000a68, 0x1)
    TEST_SLTUI(0xc7d7a240, 0x00000cdc, 0x1)
    TEST_SLTUI(0xfcefc780, 0x00000066, 0x0)
    TEST_SLTUI(0xe6b06500, 0x000009b9, 0x1)
    TEST_SLTUI(0xfaa07474, 0x00000db4, 0x1)
    TEST_SLTUI(0xa064bb00, 0x000007b4, 0x0)
    TEST_SLTUI(0x6b997b2c, 0x00000345, 0x0)
    TEST_SLTUI(0x8311c8ee, 0x00000818, 0x1)
    TEST_SLTUI(0x5ea6acac, 0x0000015f, 0x0)
    TEST_SLTUI(0x4dea8f80, 0x00000233, 0x0)
    TEST_SLTUI(0x0e02f997, 0x00000c1f, 0x1)
    TEST_SLTUI(0x31497cc4, 0x000001e2, 0x0)
    TEST_SLTUI(0x22de23b6, 0x00000f20, 0x1)
    TEST_SLTUI(0x19341260, 0x00000352, 0x0)
    TEST_SLTUI(0xbae35040, 0x00000407, 0x0)
    TEST_SLTUI(0x736eaf44, 0x00000b36, 0x1)
    TEST_SLTUI(0x0e863bab, 0x00000779, 0x0)
    TEST_SLTUI(0x3efaa7a6, 0x0000092d, 0x1)
    TEST_SLTUI(0xaa076f00, 0x00000a1a, 0x1)
    TEST_SLTUI(0xc5d0dd88, 0x000007ec, 0x0)
    TEST_SLTUI(0xedd0687b, 0x00000f54, 0x1)
    TEST_SLTUI(0x7b0e659c, 0x00000e34, 0x1)
    TEST_SLTUI(0x91943cee, 0x00000600, 0x0)
    TEST_SLTUI(0x294713b8, 0x00000802, 0x1)
    TEST_SLTUI(0xa3d95ee0, 0x00000f7c, 0x1)
    TEST_SLTUI(0x69d2bd20, 0x00000188, 0x0)
    TEST_SLTUI(0x6f482088, 0x000009ce, 0x1)
    TEST_SLTUI(0x9dcfc840, 0x00000978, 0x1)
    TEST_SLTUI(0x5a77cae0, 0x00000af8, 0x1)
    TEST_SLTUI(0x8dbfa5c0, 0x00000029, 0x0)
    TEST_SLTUI(0xb38acbe0, 0x00000530, 0x0)
    TEST_SLTUI(0xde6673f0, 0x000001de, 0x0)
    TEST_SLTUI(0xa3520110, 0x00000b9c, 0x1)
    TEST_SLTUI(0x39a3ed60, 0x000001f0, 0x0)
    TEST_SLTUI(0x84385a48, 0x000006f2, 0x0)
    TEST_SLTUI(0x67b1b642, 0x00000168, 0x0)
    TEST_SLTUI(0x3f1896ae, 0x000009ce, 0x1)
    TEST_SLTUI(0xc7206c26, 0x00000e88, 0x1)
    TEST_SLTUI(0x1d42f6c4, 0x00000ab6, 0x1)
    TEST_SLTUI(0x60d2b080, 0x000008c7, 0x1)
    TEST_SLTUI(0x0f6672d4, 0x00000cd4, 0x1)
    TEST_SLTUI(0x39924098, 0x00000018, 0x0)
    TEST_SLTUI(0xbafc22ea, 0x00000300, 0x0)
    TEST_SLTUI(0x1f6fd4e4, 0x00000168, 0x0)
    TEST_SLTUI(0xff275c54, 0x00000680, 0x0)
    TEST_SLTUI(0xbeecd49a, 0x00000c1e, 0x1)
    TEST_SLTUI(0x1fdc48da, 0x000002d8, 0x0)
    TEST_SLTUI(0xd9bfb444, 0x00000cfa, 0x1)
    TEST_SLTUI(0xbfcf86d4, 0x000001ac, 0x0)
    TEST_SLTUI(0x8a880440, 0x000008ca, 0x1)
    TEST_SLTUI(0x517132d0, 0x0000005f, 0x0)
    TEST_SLTUI(0x25554980, 0x00000565, 0x0)
    TEST_SLTUI(0x5c768b80, 0x00000c24, 0x1)
    TEST_SLTUI(0xa5e0ee9c, 0x000006c8, 0x0)
    TEST_SLTUI(0x99a79a82, 0x00000378, 0x0)
    TEST_SLTUI(0xe0f14238, 0x000000b5, 0x0)
    TEST_SLTUI(0x48cb8610, 0x000003d8, 0x0)
    TEST_SLTUI(0xcaf0c374, 0x00000c75, 0x1)
    TEST_SLTUI(0x9b94e694, 0x00000b36, 0x1)
    TEST_SLTUI(0xaad1ada4, 0x0000052a, 0x0)
    TEST_SLTUI(0xb5abcbf4, 0x00000693, 0x0)
    TEST_SLTUI(0xae3df620, 0x00000a36, 0x1)
    TEST_SLTUI(0x76ac762c, 0x00000100, 0x0)
    TEST_SLTUI(0xc2c23308, 0x000006a0, 0x0)
    TEST_SLTUI(0x8c04ec50, 0x00000e44, 0x1)
    TEST_SLTUI(0x59220200, 0x00000ab0, 0x1)
    TEST_SLTUI(0xb954b083, 0x00000760, 0x0)
    TEST_SLTUI(0x945ffd60, 0x00000f87, 0x1)
    TEST_SLTUI(0x4bb5630c, 0x000009a8, 0x1)
    TEST_SLTUI(0x459425f4, 0x00000028, 0x0)
    TEST_SLTUI(0x4a584c00, 0x00000dcc, 0x1)
    TEST_SLTUI(0x94b54308, 0x00000e2a, 0x1)
    TEST_SLTUI(0x4687236c, 0x00000fa4, 0x1)
    TEST_SLTUI(0x1ee5c220, 0x00000945, 0x1)
    TEST_SLTUI(0x4df1c530, 0x00000c00, 0x1)
    TEST_SLTUI(0xec982c3e, 0x000004a0, 0x0)
    TEST_SLTUI(0xa49e3620, 0x00000e96, 0x1)
    TEST_SLTUI(0xa8d76ac0, 0x00000736, 0x0)
    TEST_SLTUI(0xa36d33dc, 0x000005dc, 0x0)
    TEST_SLTUI(0x9cea8ff4, 0x000008d4, 0x1)
    TEST_SLTUI(0x22c1d98a, 0x00000210, 0x0)
    TEST_SLTUI(0x41b0979c, 0x000008d7, 0x1)
    TEST_SLTUI(0x9dc93b4f, 0x000004a0, 0x0)
    TEST_SLTUI(0x78de88d2, 0x00000880, 0x1)
    TEST_SLTUI(0x13f6e998, 0x0000008b, 0x0)
    TEST_SLTUI(0xb7c07400, 0x00000644, 0x0)
    TEST_SLTUI(0x42f188fe, 0x00000314, 0x0)
    TEST_SLTUI(0x93ac3400, 0x00000d13, 0x1)
    TEST_SLTUI(0x3a970198, 0x00000401, 0x0)
    TEST_SLTUI(0x2a1b0bb4, 0x000008d0, 0x1)
    TEST_SLTUI(0xd0b4acf0, 0x00000491, 0x0)
    TEST_SLTUI(0xe0d2b5fa, 0x000001b6, 0x0)
    TEST_SLTUI(0x533c7880, 0x00000e63, 0x1)
    TEST_SLTUI(0x0251adc0, 0x000003d8, 0x0)
    TEST_SLTUI(0x2d2085dc, 0x00000640, 0x0)
    TEST_SLTUI(0x3f6730a0, 0x0000008f, 0x0)
    TEST_SLTUI(0x5a887b40, 0x00000000, 0x0)
    TEST_SLTUI(0x77f6f704, 0x00000000, 0x0)
    TEST_SLTUI(0x17065b00, 0x00000000, 0x0)
    TEST_SLTUI(0x40e644f8, 0x00000000, 0x0)
    TEST_SLTUI(0x051f0300, 0x00000000, 0x0)
    TEST_SLTUI(0x21822ca0, 0x00000000, 0x0)
    TEST_SLTUI(0x10be5096, 0x00000000, 0x0)
    TEST_SLTUI(0xe044c598, 0x00000000, 0x0)
    TEST_SLTUI(0x502f3ef8, 0x00000000, 0x0)
    TEST_SLTUI(0xff47ef40, 0x00000000, 0x0)
    TEST_SLTUI(0x66ce7cbe, 0x00000000, 0x0)
    TEST_SLTUI(0x29372a28, 0x00000000, 0x0)
    TEST_SLTUI(0x845ce200, 0x00000000, 0x0)
    TEST_SLTUI(0x16321ee0, 0x00000000, 0x0)
    TEST_SLTUI(0x456540c0, 0x00000000, 0x0)
    TEST_SLTUI(0x9b0705f0, 0x00000000, 0x0)
    TEST_SLTUI(0x95e20950, 0x00000000, 0x0)
    TEST_SLTUI(0x08312224, 0x00000000, 0x0)
    TEST_SLTUI(0x03138460, 0x00000000, 0x0)
    TEST_SLTUI(0x3978fdde, 0x00000000, 0x0)
    TEST_SLTUI(0xfad1e400, 0x00000000, 0x0)
    TEST_SLTUI(0x514ede20, 0x00000000, 0x0)
    TEST_SLTUI(0x8889e66f, 0x00000000, 0x0)
    TEST_SLTUI(0x3ac1a4fc, 0x00000000, 0x0)
    TEST_SLTUI(0x3ed2ea5f, 0x00000000, 0x0)
    TEST_SLTUI(0x80633134, 0x00000000, 0x0)
    TEST_SLTUI(0x6ba5c2bb, 0x00000000, 0x0)
    TEST_SLTUI(0x6fa0b5c0, 0x00000000, 0x0)
    TEST_SLTUI(0xd2aaa7be, 0x00000000, 0x0)
    TEST_SLTUI(0xe48a4b08, 0x00000000, 0x0)
    TEST_SLTUI(0x6fb22958, 0x00000000, 0x0)
    TEST_SLTUI(0x154e6134, 0x00000000, 0x0)
    TEST_SLTUI(0x9cf23035, 0x00000000, 0x0)
    TEST_SLTUI(0x5fe5308c, 0x00000000, 0x0)
    TEST_SLTUI(0xafc0d82c, 0x00000000, 0x0)
    TEST_SLTUI(0x2472d528, 0x00000000, 0x0)
    TEST_SLTUI(0x28196e0f, 0x00000000, 0x0)
    TEST_SLTUI(0x8c5ad5f4, 0x00000000, 0x0)
    TEST_SLTUI(0x579eb980, 0x00000000, 0x0)
    TEST_SLTUI(0xf5210f00, 0x00000000, 0x0)
    TEST_SLTUI(0x93aa7fc5, 0x00000000, 0x0)
    TEST_SLTUI(0x1bab4b60, 0x00000000, 0x0)
    TEST_SLTUI(0xe5817240, 0x00000000, 0x0)
    TEST_SLTUI(0xcc59904c, 0x00000000, 0x0)
    TEST_SLTUI(0x398bd619, 0x00000000, 0x0)
    TEST_SLTUI(0x67b89b28, 0x00000000, 0x0)
    TEST_SLTUI(0xefd80fc4, 0x00000000, 0x0)
    TEST_SLTUI(0x55d2d016, 0x00000000, 0x0)
    TEST_SLTUI(0x96099350, 0x00000000, 0x0)
    TEST_SLTUI(0x719d44a8, 0x00000000, 0x0)
    TEST_SLTUI(0x00000000, 0x00000625, 0x1)
    TEST_SLTUI(0x00000000, 0x0000072e, 0x1)
    TEST_SLTUI(0x00000000, 0x00000e36, 0x1)
    TEST_SLTUI(0x00000000, 0x00000e40, 0x1)
    TEST_SLTUI(0x00000000, 0x00000d08, 0x1)
    TEST_SLTUI(0x00000000, 0x000006c4, 0x1)
    TEST_SLTUI(0x00000000, 0x00000f0d, 0x1)
    TEST_SLTUI(0x00000000, 0x00000460, 0x1)
    TEST_SLTUI(0x00000000, 0x000009de, 0x1)
    TEST_SLTUI(0x00000000, 0x00000798, 0x1)
    TEST_SLTUI(0x00000000, 0x00000a38, 0x1)
    TEST_SLTUI(0x00000000, 0x000006b4, 0x1)
    TEST_SLTUI(0x00000000, 0x00000bdf, 0x1)
    TEST_SLTUI(0x00000000, 0x00000cc8, 0x1)
    TEST_SLTUI(0x00000000, 0x0000071c, 0x1)
    TEST_SLTUI(0x00000000, 0x000004d6, 0x1)
    TEST_SLTUI(0x00000000, 0x00000100, 0x1)
    TEST_SLTUI(0x00000000, 0x00000725, 0x1)
    TEST_SLTUI(0x00000000, 0x00000d3a, 0x1)
    TEST_SLTUI(0x00000000, 0x00000c47, 0x1)
    TEST_SLTUI(0x00000000, 0x00000eb8, 0x1)
    TEST_SLTUI(0x00000000, 0x000004ec, 0x1)
    TEST_SLTUI(0x00000000, 0x00000de0, 0x1)
    TEST_SLTUI(0x00000000, 0x000004b1, 0x1)
    TEST_SLTUI(0x00000000, 0x00000bae, 0x1)
    TEST_SLTUI(0x00000000, 0x00000c44, 0x1)
    TEST_SLTUI(0x00000000, 0x00000e1d, 0x1)
    TEST_SLTUI(0x00000000, 0x00000028, 0x1)
    TEST_SLTUI(0x00000000, 0x00000520, 0x1)
    TEST_SLTUI(0x00000000, 0x00000b2f, 0x1)
    TEST_SLTUI(0x00000000, 0x00000612, 0x1)
    TEST_SLTUI(0x00000000, 0x00000665, 0x1)
    TEST_SLTUI(0x00000000, 0x000008ec, 0x1)
    TEST_SLTUI(0x00000000, 0x0000023a, 0x1)
    TEST_SLTUI(0x00000000, 0x00000345, 0x1)
    TEST_SLTUI(0x00000000, 0x0000031d, 0x1)
    TEST_SLTUI(0x00000000, 0x000003d0, 0x1)
    TEST_SLTUI(0x00000000, 0x00000c47, 0x1)
    TEST_SLTUI(0x00000000, 0x00000d66, 0x1)
    TEST_SLTUI(0x00000000, 0x00000ca7, 0x1)
    TEST_SLTUI(0x00000000, 0x00000d13, 0x1)
    TEST_SLTUI(0x00000000, 0x000008b8, 0x1)
    TEST_SLTUI(0x00000000, 0x00000a66, 0x1)
    TEST_SLTUI(0x00000000, 0x00000960, 0x1)
    TEST_SLTUI(0x00000000, 0x000002f0, 0x1)
    TEST_SLTUI(0x00000000, 0x0000059f, 0x1)
    TEST_SLTUI(0x00000000, 0x00000d76, 0x1)
    TEST_SLTUI(0x00000000, 0x00000594, 0x1)
    TEST_SLTUI(0x00000000, 0x000000df, 0x1)
    TEST_SLTUI(0x00000000, 0x000003b8, 0x1)
    TEST_SLTUI(0x00000000, 0x00000000, 0x0)
###detect exception
    bne s2, zero, inst_error
    nop
###score ++
    addi.w s3, s3, 1
###output (s0<<24)|s3
inst_error:  
    slli.w t1, s0, 24
    NOP4
    or t0, t1, s3 
    NOP4
    st.w t0, s1, 0
    jirl zero, ra, 0
END(n23_sltui_test)
